Correction of topology interference for solid objects in a modeling environment

ABSTRACT

The present invention provides a method, system, and instructions stored on a computer readable storage medium that resolve interference between surfaces in a modeling environment, such as a CAD environment. Further, exemplary embodiments of the present invention may modify the surfaces of a model to ensure that parts of the model constitute a solid body. In exemplary embodiments, when the manipulation of a first surface or set of surfaces causes interference with a second surface or set of surfaces, the topologies of the surfaces are modified to account for the interference. The individual surfaces involved in the intersection may be treated as a merged surface or set of surfaces having a single topology, surface area, and volume. If an ambiguity arises whereby more than one option exists for resolving the interference or providing a solid body, the modeling environment may provide multiple potential solutions to a user, and allow the user to select from among the solutions.

RELATED APPLICATION

This application claims the benefit of U.S. Provisional PatentApplication No. 61/185,046, filed on Jun. 8, 2009, for all subjectmatter common to said applications. The disclosures of all of theabove-mentioned applications are hereby incorporated by reference hereinin their entirety.

FIELD OF THE INVENTION

The present invention is generally directed to the correction oftopology inference in modeling environments, and in particular ComputerAided Drafting (“CAD”) environments.

BACKGROUND OF THE INVENTION

In modeling environment such as CAD environments, a user may construct amodel by specifying a number of rules that define the geometry of themodel. The geometry that makes up the model is composed of set of“surfaces” connected to each other through “edges.” A solid body isformed when every edge has at least two adjacent surfaces attached toit. For example, a cube is a solid body because each edge includes atleast two adjacent surfaces. An example of non-solid body is a piece ofpaper, where each of four edges are attached to a single surface. Ageometry may represent a component of a model, which can take a widevariety of shapes or sizes. For example, a model of a computer mouse mayinclude a cylindrical geometry having a number of surfaces thatrepresents the mouse wheel, flat rectangular geometries representing themouse buttons, and a spherical geometry representing a trackball.

In many modeling environments, geometries and their correspondingsurfaces may be moved relative to each other in three-dimensional space.This may allow, for example, a user to create a set of surfacesrepresenting a button on a mouse, and then experiment with differentbutton placements in order to achieve an ergonomically beneficialdesign. When a geometry, surface, or set of surfaces can be movedinstead of being restricted to the place in which it was defined, thisis an example of “flexible modeling.”

However, a problem arises in flexible modeling environments when themovement of a surface causes the surfaces of a solid body to interferewith other surfaces of the solid body. In the above example, themovement of a mouse button might mean that a part of the mouse buttonwould occupy space that is already occupied by the geometrycorresponding to the mouse wheel. Accordingly, modeling environments mayrestrict the ability of a user to move specific surfaces into a newlocation if moving the surfaces would cause them to interfere withanother surface. This restriction prevents two different sets ofsurfaces or geometries from occupying the same space at the same time.

Such a restriction is not always desirable. For example, a user maycreate a geometry that the user later wishes to integrate with someother geometry. This may require the user to eliminate the individualgeometries and reconstruct a new, third geometry that represents theintegration of the first and second geometries. This process can betime-consuming and complicated.

Additionally, modeling environments are often used to develop orprototype an object before the object is manufactured. The design thatresults from the modeling environment may be used as a blueprint for amanufacturer, or the model itself may serve as an input to a rapidprototyping machine.

In order to effectively serve as a basis for a manufactured object, themodel in the modeling environment should fulfill certain considerationsor meet certain requirements. One exemplary requirement is that themodel must represent a solid body. Such a rule is a key requirement forproper reconstruction of a solid geometry after Flexible Modelingoperation is performed.

Another exemplary requirement is that the surfaces of a particular modelshould be as coextensive as possible. In the manufacturing orprototyping process, it is desirable for the faces of certain parts ofmanufactured objects to be as coextensive as possible. This reduces themanufacturing complexity and costs while simultaneously improving thestructural integrity of the manufactured object. For example, a user ina CAD environment may move a first set of surfaces close to a second setof surfaces with the intention that two of the surfaces meet (e.g.,moving two cubes together to form a rectangle). However, a gap may existbetween the surfaces that is difficult to see in the modelingenvironment, resulting in surfaces that are not coextensive.

Therefore, there is a need for a modeling environment that is capable ofresolving interference between geometries and surfaces in a modelingenvironment that allows the model to form a unitary solid body. Further,there is a need for a modeling environment with the ability to ensurethat surfaces in a model are as coextensive as possible, if desired.

SUMMARY OF THE INVENTION

The present invention provides a method, system, and instructions storedon a computer readable storage medium that properly resolve interferencebetween sets of surfaces in a modeling environment, such as a CADenvironment. Further, exemplary embodiments of the present invention maymodify the surfaces of a model to ensure that parts of the modelconstitute a solid body.

In accordance with one embodiment of the present invention, a model isprovided in a modeling environment. The model may include one or moregeometries that may be manipulated in the modeling environment. The oneor more geometries may define a set of surfaces. The manipulation mayinclude, for example, moving or resizing the surfaces. When a geometryis manipulated in such a way that the manipulation causes interferencewith another geometry, aspect of the geometry, or surface, the topologyof the model is modified to account for the interference.

The modification of the topology may include a number of changes. Forexample, new edges or vertices may need to be created, or old edges orvertices may need to be removed (or both). Self intersections may beresolved so that intersecting surfaces form a single, solid body.Further, the boundaries of surfaces involved in the modification may beextended or reduced in order to form a solid body.

In modifying the topology, an ambiguity may arise whereby more than oneoption exists for the new topology. In the case of an ambiguity, theenvironment may provide multiple potential solutions to a user, andallow the user to select from among the solutions.

DESCRIPTION OF THE FIGURES

Exemplary embodiments of the invention are described with reference tothe following figures. Throughout the figures, like reference numeralsdescribe like elements.

FIG. 1 depicts an exemplary electronic device 100 suitable for use withexemplary embodiments of the invention.

FIG. 2 depicts an exemplary model 200 suitable for use with exemplaryembodiments of the invention.

FIG. 3 depicts the model 200 after the model geometry is manipulated insuch a way as to cause interference.

FIG. 4 a depicts an exemplary manipulation of model 200 whereby theenvironment extends the boundaries of a surface to create a solid body.

FIG. 4 b depicts the model of FIG. 4 a from a different perspective.

FIG. 5 is a flow chart depicting the steps performed in practicingexemplary embodiments of the invention.

DETAILED DESCRIPTION

The present invention provides a method, system, and instructions storedon a computer readable storage medium that resolve interference betweenfeatures in a modeling environment, such as a CAD environment. Further,exemplary embodiments of the present invention may modify the surfacesof a model to ensure that parts of the model constitute a solid body.

As used herein, a “surface” is a face defined by a particular geometryin the model. A geometry may have one or more surfaces or sets ofsurfaces. The surfaces may be flat, curved, or angular. For example, acube has six flat surfaces. A cylinder has flat, circular top and bottomsurfaces and a single curved side surface. A cone has a flat, circularbottom surface and a round, tapering, angular side surface that comes toa point at the top of the cone.

As used herein, an “edge” represents the outer boundary of a surface.For example, the front surface of a cube has four edges equal in sizeand oriented at right angles to each other. As used herein, a “vertex”is a point at which two or more edges meet. On a cube, vertices arelocated at each corner, where three edges meet.

As used herein, “topology” is the representation of the surface area ofa solid body. The topology is comprised by interconnecting surfaces,edges, and vertices. In certain circumstances it is very useful toaccurately represent the topology of a model, for example to allow themodel to undergo rapid prototyping.

FIG. 1 depicts an electronic device 100, e.g. a computer, suitable foruse with the exemplary embodiments described herein. The electronicdevice 100 may contain storage 150 for storing computer-executableinstructions 152 to be executed by a processor 120, such as amicroprocessor, application specific integrated circuit (ASIC),field-programmable gate array (FPGA), or a controller. The instructions152 may be embodied in one or more computer-readable media, and mayimplement the functionality of exemplary embodiments described herein.The media may be, but are not limited to, a hard disk, a compact disc, adigital versatile disc, a flash memory card, a programmable read onlymemory (PROM), a random access memory (RAM), a read only memory (ROM),magnetoresistive random access memory (MRAM), magnetic storage media, oroptical storage media. The instructions 152 may cause the processor 120to perform a series of steps described in detail below. The instructions152 may be in any form that describes how to perform these steps. Forexample, the instructions may be uncompiled code in any suitableprogramming language, compiled code, assembly language instructions, orany other type of instructions.

The storage 150 may store any modules, outputs, displays, files,information, user interfaces, etc, provided in exemplary embodiments.The storage 150 may store applications 160 for use by the electronicdevice 100 or another electronic device. The applications 160 mayinclude programs, modules, or software components that allow theelectronic device 100 to perform tasks. Examples of applications 160include word processing software, shells, Internet browsers,productivity suites, and programming software. In one embodiment, theelectronic device 100 may include a modeling environment 162 forconstructing models. The modeling environment 162 may be, for example, asoftware component or a computer program. The modeling environment 162may be a CAD environment. The modeling environment 162 may include meansfor constructing, editing, saving and loading models, simulating theperformance of a model, and providing the model as an input to a rapidprototyping or manufacturing unit. The modeling environment 162 mayfurther include a geometry kernel 164, which calculates and representsthe geometry of features in the model. For example, the geometry kernel164 may be responsible for calculating the topology of the model.

The storage 150 may also store an operating system 156 for operating theelectronic device 100. The storage 150 may store additional applications160 for providing additional functionality, as well as data 158 for useby the electronic device 100 or another device. The data 158 may includefiles, variables, parameters, images, text, and other forms of data. Thestorage 150 may also store a library 154, such as a library for storingmodels used by the modeling environment 162. The library 154 may beused, for example, to store default or custom models or modelcomponents.

The electronic device 100 may have a communication device 112 forcommunicating with a communication network 110. The communication device112 may be, for example, a modem, an Ethernet connection, a fiber opticconnection, a radio antenna, or any suitable means for communicatingwith a network. Examples of communication networks include, but are notlimited to, the Internet, Ethernet networks, Fiber Optic Networks, WiFinetworks, UMTS terrestrial radio access network (UTRAN) or universalmobile telecommunications System (UMTS) networks, code division multipleaccess (CDMA) networks, WiMax Networks, and ultra mobile broadband (UMB)networks, among others.

Optionally, the electronic device 100 may have a display device 130 fordisplaying any outputs, displays, files, information, user interfaces,etc, provided in exemplary embodiments. The display device 130 maydisplay a Graphical User Interface (GUI). The display device 130 may be,for example, a computer monitor, television, touch screen, tablet orslate computer, or any other device capable of displaying information.

It is understood that the present invention may be implemented in adistributed or networked environment. For example, models may beprovided and manipulated at a central server, while a user interactswith the models through a user terminal.

In accordance with exemplary embodiments of the present invention, andas depicted in FIG. 2, a model 200 is provided in a modelingenvironment. The model may include one or more sets of surfaces 210, 220that may be manipulated in the modeling environment. For example, themodel 200 includes a knob 220, and the knob 220 is made up of a cylinder224 and three fins, such as fin 222. A body 210 in the model 200includes a groove 230. The body 210 also includes a first ridge 212, asecond ridge 216, and a third ridge 218. The first ridge 212 includes anumber of surfaces, such as a side surface 214 and a top surface 213.

The geometry of the model may be manipulated. These manipulations maychange the amount of space that is occupied by different parts of themodel, or the location or position in space of parts of the model. Forexample, a surface or set of surfaces may be resized, moved, rotated, orthe like. Manipulations will be discussed in more detail below withrespect to FIG. 5.

In some cases, the manipulation of geometry may cause interferencebetween two or more sets of surfaces. For example, FIG. 3 depicts amodel 200, which is the same as the model 200 depicted in FIG. 2 exceptfor the manipulation of the knob 220. In FIG. 3, the knob 220 is movedso that it interferes with the middle ridge 216 of body 210. In thiscase, the entire model 200 is still treated as a single solid body.Accordingly, the topology for the interfering geometry (body 210 andknob 220) should be recreated so that the resulting model represents asolid body.

When a manipulation causes interference between two or more sets ofsurfaces, or portions of surfaces, the topology of the features aremodified in accordance exemplary embodiments of the present invention toaccount for the interference. The modification of the topology mayinclude a number of changes. For example, new edges, vertices, orsurfaces may be created. Further, it may be possible to remove oldedges, vertices, or surfaces. The modification of the topology will bediscussed in more detail with respect to FIG. 5.

Although interference is discussed herein with respect to two sets ofsurfaces, it is understood that any number of surfaces or sets ofsurfaces may simultaneously interfere with each other as a result of amanipulation. As such, the present invention is by no means limited tothe specific examples provided herein.

A self-intersection arises in a model when two or more features of amodel intersect each other. Self-intersections may be resolved so thatthe intersecting features form a single, solid body.

For example, in the model 200 as depicted in FIG. 3, one of the surfacesof the fin 222 intersects the side surface of the second ridge 216. Ateach new point of intersection, such as a point 223 where the top andside surfaces of the fin 222 meet the side surface of the second ridge216, a new vertex may be created for the topology. New edges may also becreated between the new vertices, such as a new edge 225.

The modification of the model topology will not necessarily change theunderlying sets of surfaces, such as the body 210 (which includes thesecond ridge 216) and the knob 220. Accordingly, although the model 200is treated as a solid body having a unified topology, informationrelated to the underlying interfering surfaces may be preserved. As aresult, it is possible for a user to manipulate intersecting surfaces insuch a way that the surfaces no longer intersect. After such amanipulation, the surfaces revert to their original topologies. Forexample, a user could move the knob feature 220 in the model 200 of FIG.3 back to the position of the knob feature 220 in the model 200 of FIG.2, and the sets of surfaces 210, 220 would revert to their originalshapes and topologies.

The boundaries of surfaces involved in a modification may also beextended or reduced in order to form a solid body, as depicted in FIGS.4 a and 4 b. In FIG. 4 a, the knob 220 has been moved so that the fin222 sits on top of the groove 230. This may result in a space beingformed between the groove 230 and the bottom of the fin 222. This emptyspace may present problems for the structural integrity of the model200, and may increase the complexity and cost of manufacturing an objectbased on the model 200. In accordance with exemplary embodiments of thepresent invention, the environment may detect an empty space thatresults when a surface is manipulated and fill the empty space byextending one or more surfaces to fill the empty space. In someembodiments, one or more surfaces may be retracted.

For example, in FIG. 4 a, the sides of the fin 222 are extended so thatthe bottom of the fin 222 becomes coextensive with the top of the groove230. This eliminates the empty space between the fin 222 and the groove230 by filling it with an extension region 410. In the present example,the extension region 410 is an extension of the fin 222. The extensionregion 410 is shown in more detail in FIG. 4 b.

In modifying the topology, an ambiguity may arise whereby more than oneoption exists for the new topology. In the case of an ambiguity, theenvironment may provide multiple potential solutions to a user, andallow the user to select from among the solutions. For example, in themodel 200 as depicted in FIGS. 4 a and 4 b, an alternative to loweringthe bottom of the fin 222 may be to raise the top of the groove 230. Auser may be presented with this option as an alternative to the model200 as depicted in FIGS. 4 a and 4 b.

FIG. 5 is a flow chart depicting the steps performed in practicingexemplary embodiments of the invention. At step 510, a model (e.g.,model 200) is provided in a modeling environment, such as the modelingenvironment 162 depicted in FIG. 1. The model may include one or moresurfaces that may be manipulated in the modeling environment.

At step 520, one or more surfaces are manipulated in such a way that themanipulation causes interference with one or more other surfaces of asolid. An “interference” indicates that one or more portions of, or allof, manipulated surfaces occupy space that is simultaneously occupied byone or more portions or all of a solid. A “manipulation” is anythingthat changes the location, shape, size, volume, surface area, positionor space that is occupied by the feature. A manipulation may include,for example, moving, resizing, or rotating the feature. Parts of thegeometry may be extruded, compressed, added to, or subtracted from tochange the shape of the geometry.

The modeling environment 162, as depicted in FIG. 1, may recognize theinterference. For example, the geometry kernel 166 may be tasked withidentifying potential interferences during or after each manipulation ofgeometry. The modeling environment 162 may recognize the interferenceby, for example, comparing the space occupied by the interior volumes ofsets of surfaces to determine whether the geometries defining thosesurfaces occupy at least some of the same space. In accordance withanother exemplary embodiment of the present invention, the modelingenvironment 162 may recognize the interference by comparing each of theedges associated with a first surface involved in the interference toother surfaces involved in the interference. In another exemplaryembodiment, both the volumes and the topologies (including vertices,surfaces, and edges) interfering geometries are compared. This may helpto resolve interferences where the comparison of volumes provides oneanswer (such as “no interference”), but the comparison of topologiesgives a different answer (such as “interference found”). For example, ifa small sphere is moved entirely within a larger sphere, the comparisonof topologies may not indicate an intersection between the topologies ofthe small sphere and the large sphere, because the surface area of theinner sphere does not interfere with the surface area of the outersphere. However, the comparison of volumes indicates that the geometrycorresponding to the smaller sphere occupies at least some of the samespace as the geometry corresponding to the larger sphere, and so theobjects interfere.

The above steps may be repeated for each group of surfaces involved inthe interference. For example, if three surfaces interfere with eachother, the volumes, edges, and surface areas of the first surface may becompared to the volumes, edges, and surface areas of the second andthird surface. Then, the second surface may be compared to the first andthird surface, and the third surface may be compared to the first andsecond surface.

It may be necessary to repeat these steps for each surface in a set ofsurfaces because the comparison of a first geometry to a second geometrymay yield different results than a comparison of the second geometry tothe first geometry. For example, at step 520, edges associated with afirst surface may be compared to the surface area of a second surface todetermine whether the surfaces intersect. Thus, in FIG. 3, the edges ofthe second ridge 216 of the body 210 may be compared to the surface areaof the surfaces of the fin 222. At this stage, no intersection isidentified, because the edges of the second ridge 216 do not intersectwith any of the surfaces of the fin 222. In contrast, when the edges ofthe fin 222 are compared to the surfaces of the second ridge 216, thegeometry kernel 166 determines that the fin 222 does intersect with thesecond ridge 216. At least two of the top edges of the fin 222 and twoof the bottom edges of the fin 222 intersect with the side surface ofthe second ridge 216.

In the above example, it was assumed that the edges of the second ridge216 do not intersect with any of the surfaces of the fin 222. However,it may be possible that the bottom face of the fin 222 intersects thebottom edges of the second ridge 216 because the bottom face of the fin222 falls in the same plane as the bottom edges of the second ridge 216.Whether or not this is considered to be an intersection may be defined,for example, by the geometry kernel 166, and may vary depending on theimplementation or application.

At steps 530-550, the topologies of the features are modified to accountfor the interference.

At step 530, new edges, vertices, and/or surfaces are created orextended, or old edges, vertices, and/or surfaces are removed orretracted, or both. In one exemplary embodiment, the geometry kernel 166(FIG. 1) may analyze the surfaces or sets of surfaces involved in theinterference to determine how to change the topologies. For example, thegeometry kernel may determine where to place new vertices by examiningpoints of intersection between edges and surfaces. In FIG. 3, a newvertex may be created at a point 223 because one edge of the fin 222intersects a surface of the second ridge 216 at the point 223. Once eachnew vertex is identified, the geometry kernel 166 may remove verticesthat will not contribute to the new topology. For example, the point atwhich the fin 222 intersects the cylinder 224 (not shown in FIG. 3)would have constituted a vertex in model 200 as depicted in FIG. 2.However, this point lies within the volume of the geometry correspondingsecond ridge 216 in the model 200 as depicted in FIG. 3. Because thispoint does not contribute to the topology of a new solid body resultingfrom the interference of the knob 220 with the second ridge 216, thisvertex may be removed from the topology of model 200 as depicted in FIG.3.

This step may be simplified by removing certain surfaces, vertices, andedges from consideration. For example, parallel surfaces will neverintersect. The determination of an intersection may involve, forexample, comparing the size, position, or both of two surfaces to theangle between the surfaces.

New edges may be created that account for the current set of verticesafter new vertices have been created, and old edges may be removed oncethe old vertices are removed. New edges may be created along previouslyexisting edges (such as the point connecting the vertex 223 in FIG. 3with the outer vertex of the fin 222 along the existing edge). New edgesmay also be created where no edges previously existed, such as the edge225 in FIG. 3. In the case where no edge previously existed, a new edgemay be identified by comparing vertices to surfaces or points ofintersection between features. For example, the need for an edge 225 maybe identified based on the intersection of the top of the fin 222 withthe side surface of the second ridge 216. Further, old edges may beremoved, such as the top edges of the fin 222. The removal of old edgesmay be identified based on the removal of vertices, or the existence ofan edge associated with a first surface that interferes with a secondsurface or edge associated with a second surface.

Once the new edges are created and old edges removed, new surfaces maybe created and old surfaces may be removed. New surfaces may be createdto connect added edges, and old surfaces may be removed based on theremoval of old edges. The need for the addition or removal of surfacesmay be identified in a manner similar to the addition or removal ofvertices and edges. For example, a surface corresponding to a firstgeometry may be removed if the surface interferes with a surfacecorresponding to a second geometry.

At step 540, self intersections are resolved so that the intersectingsurfaces form a single, solid body. After intersecting vertices, edges,or surfaces are identified at step 530, and new vertices, edges, orsurfaces are created, the topologies of the interfering surfaces aremerged so that the interfering surfaces are treated as a single set ofsurfaces, referred to herein as a “merged surface.” The merged surfacemay correspond to a new topology. A new volume may be calculated for thegeometry corresponding to the merged surface by the geometry kernel 166.The merged surface is now treated as a solid entity for purposes of themodel, although each surface or set of surfaces making up the mergedsurface (e.g., the knob 220 and the second ridge 216) may maintain itsown identity and continue to be independently manipulatable. If theindividual surfaces making up the merged surface are subsequentlymanipulated in a way that eliminates the intersection or results in anew or different intersection, the topology and volume of a new mergedsurface or set of surfaces may be recalculated in the same manner asdescribed at steps 530-550.

At step 550, the boundaries of surfaces involved in the modification maybe extended or reduced in order to form a solid body. The modelingenvironment 162 may maintain a set of rules governing how to form asolid body in the model. For example, a particular part of the model maybe identified as the base of the model, such as the base 210 in themodel 200. If a part of the model is identified as a base, an exemplaryrule for maintaining a solid body may be to require that the bottom ofeach set of surfaces placed on the base 210 should be as coextensive aspossible with the base 210. Alternatively, an exemplary rule may be toeliminate space between the sides of the base 210 and the side surfacesof geometries placed on the base 210. Another exemplary rule may be toeliminate empty spaces between each various parts of the model. Themodeling environment 162 may include default rules in addition touser-defined rules.

If more than one option is possible in steps 530-550, an ambiguityexists as to which option should be chosen. An ambiguity may exist whenthe resolution of an interference may be done in more than one way. Forexample, when more than one surface may be extended to form a solid bodyat step 550, an ambiguity may exist as to which surface to extend (afirst surface, a second surface, or both surfaces). For example, in FIG.4 a, the extension area 410 may be an extension of the surfaces of thefin 222 or may be an extension of the groove 230, or the surfaces ofboth the fin 222 and the groove 230 may be extended. When an ambiguityexists, the modeling environment 162 may rely on a default rule forresolving the ambiguity. One example of a default rule is to modify thetopology, volume, or both, of the geometry whose manipulation gave riseto the interference. For example, because the knob 220 was moved on topof the groove 230 in FIG. 4 a, the manipulation of the knob 220 gaverise to the interference. Thus, the extension region 410 is added to theknob 220 and not the groove 230. Another example of a default rule is topreserve the shape of the base 210 and require that extension regions beadded to geometries placed on top of a base feature. One having ordinaryskill in the art will understand that the choice of a default rule maybe overridden by a user-defined rule, and that the default rule may varydepending on the application or situation.

Optionally, at step 560, the ambiguity may be resolved by presentingeach potential option to a user, who may select one of the options forimplementation. The plurality of options may be presented to a user in agraphical user interface that is displayed on a display device, such asthe display device 130 in FIG. 1. The selected option may then beimplemented in the model.

Although the present invention has been described with reference toparticular embodiments, one having ordinary skill in the art willunderstand that the present invention is not limited to the embodimentsdescribed herein. A number of modifications are possible withoutdeviating from the scope of the invention. The preset invention is meantto cover all such modifications.

The invention claimed is:
 1. A method performed in an electronic device,the method comprising: providing a model in a modeling environment, themodel comprising a base and a plurality of surfaces, at least some ofthe surfaces being positioned on the base; manipulating a geometry ofthe model so that at least a portion of two or more surfaces of theplurality of surfaces occupy a same space to create an interference;programmatically detecting the interference; in response to detectingthe interference, resolving, using a processor of the electronic device,the interference so that the model comprises a solid body with a unitarygeometry, the resolving comprising: detecting an empty space between oneor more surfaces of the surfaces positioned on the base and the base ofthe model resulting from the manipulation, extending the one or moresurfaces of the surfaces positioned on the base to make the one or moresurfaces coextensive with the base so that the model comprises the solidbody with the unitary geometry and storing the resulting model instorage.
 2. The method of claim 1, wherein resolving the interferencecomprises adding at least one of the group of a new vertex, a newsurface, and a new edge to create a solid body.
 3. The method of claim1, wherein a plurality of options exist for resolving the interference,the plurality of options being presented to a user through a graphicaluser interface on a display, the graphical user interface allowing auser to select one of the plurality of options, the selected optionbeing implemented in the model.
 4. The method of claim 1, wherein thegeometry comprises a first feature and manipulating the geometrycomprises manipulating the first feature by at least one of the group ofmoving, resizing, or rotating the first feature.
 5. The method of claim1, wherein resolving the interference is performed at least in part by ageometry kernel provided by the electronic device.
 6. The method ofclaim 1, wherein the manipulation comprises moving one or more of theplurality of surfaces independently of the unitary geometry while theone or more of the plurality of surfaces participates in the unitarygeometry.
 7. A non-transitory electronic-device-readable medium storingelectronic-device-readable instructions that, when executed by aprocessor, cause the processor to: provide a model in a modelingenvironment, the model comprising a base and a plurality of surfaces, atleast some of the surfaces being positioned on the base; manipulate afirst surface of the plurality of surfaces so that at least a portion ofthe first surface occupies a same space as at least a portion of asecond surface of the plurality of surfaces to create an interference;in response to detecting the interference, resolve the interference sothat the model comprises a solid body with a unitary geometry, theresolving comprising: detecting an empty space between one or moresurfaces of the surfaces positioned on the base and the base of themodel resulting from the manipulation, extending the one or moresurfaces of the surfaces positioned on the base to make the one or moresurfaces coextensive with the base so that the model comprises the solidbody with the unitary geometry and store the resulting model in storage.8. A system comprising: storage for storing a model, the modelcomprising a base and a plurality of surfaces, at least some of thesurfaces being positioned on the base; and a processor for: providing amodeling environment that allows for the manipulation of one or more ofthe surfaces of the plurality of surfaces of the model; detecting theinterference; in response to detecting the interference, resolving aninterference between a first surface in the model and a second surfacein the model caused by at least a portion of the first surface and atleast a portion of the second surface occupying a same space so that themodel forms a solid body with a unitary geometry, the resolvingcomprising: detecting an empty space between one or more surfaces of thesurfaces positioned on the base and the base of the model resulting fromthe manipulation, extending the one or more surfaces of the surfacespositioned on the base to make the one or more surfaces coextensive withthe base so that the model comprises the solid body with the unitarygeometry and storing the resulting model in the storage.